package com.sinvo.oa.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sinvo.oa.entity.model.process.Process;
import com.sinvo.oa.entity.vo.process.ApprovalVo;
import com.sinvo.oa.entity.vo.process.ProcessFormVo;
import com.sinvo.oa.entity.vo.process.ProcessQueryVo;
import com.sinvo.oa.entity.vo.process.ProcessVo;

import java.util.Map;

/**
 * @Description 审批 service接口
 */
public interface ProcessService extends IService<Process> {

    //分页查询审批
    Page<ProcessVo> selectPage(Page<ProcessVo> page, ProcessQueryVo processQueryVo);

    //部署流程定义
    void deployByZip(String deployPath);

    //启动流程
    void startUp(ProcessFormVo processFormVo);

    //查询待处理
    Page<ProcessVo> getPending(Page<Process> page);

    //查看审批详情
    Map<String, Object> showDetail(Long id);

    //进行审批操作
    void approveProcess(ApprovalVo approvalVo);

    //查询已处理任务
    Page<ProcessVo> getProcessed(Page<Process> page);

    //查询已发起任务
    Page<ProcessVo> findStarted(Page<ProcessVo> page);
}
